﻿using FormsAuthWeb.Models;
using FormsAuthWeb.Utils;
using System;
using System.Web;
using System.Web.Http;

namespace FormsAuthWeb
{
    public class Global : System.Web.HttpApplication
    {
        protected void Application_Start(object sender, EventArgs e)
        {
            // 在应用程序启动时运行的代码
            GlobalConfiguration.Configure(WebApiConfig.Register);
        }

        protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {
            HttpApplication app = sender as HttpApplication;
            if (app != null)
            {
                FormsPrincipal<UserInfo>.TrySetUserInfo(app.Context);
            }
        }

        // 也可以参考下面的方法。
        //protected void FormsAuthentication_OnAuthenticate(object sender, FormsAuthenticationEventArgs e)
        //{
        //    // 这种方法将不检查ticket.Expiration是否已过期。
        //    // 如果采用上面的方法，FormsAuthenticationModule将会处理ticket过期问题。
        //    // 不过这种方法可以只调用FormsAuthentication.Decrypt()一次。
        //    e.User = FormsPrincipal<UserInfo>.TryParsePrincipal(e.Context.Request);
        //}
    }
}